const express = require('express')
const router = express.Router()
const { query } = require('../db')
// 添加路由
// 添加专家(post /)
router.post('/',async (req,res,next) => {
  // 获取post传参
  const obj = req.body
  console.log(obj)
  // 判断是否为空
  let code = 400
  for(let k in obj) {
    code++
    if(!obj[k]) {
      return res.send({
        code,
        msg: `${k}不能为空`
      })
    }
  }
  // 执行SQL命令
  try {
    var data = await query('insert into hs_expert set ?',[obj])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  res.send({
    code: 200,
    msg: '专家添加成功'
  })
})
// 修改专家(put /)
router.put('/',async (req,res,next) => {
  // 获取post传递的参数
  const obj = req.body
  console.log(obj)
  // 判断是否为空
  let code = 400
  for(let k in obj) {
    code++
    if(!obj[k]) {
      return res.send({
        code,
        msg: `${k}不能为空`
      })
    }
  }
  // 执行SQL命令
  try {
    var data = await query('update hs_expert set ? where id=?',[obj,obj.id])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  // 判断修改
  if(data.changedRows === 0) {
    res.send({
      code: 410,
      msg: '专家修改失败'
    })
  } else {
    res.send({
      code: 200,
      msg: '专家修改成功'
    })
  }
})
// 删除专家(delete /)
router.delete('/', async (req,res,next) => {
  // 获取get传递参数
  const { id } = req.query
  console.log(id)
  // 判断是否为空
  if(!id) {
    return res.send({
      code: 401,
      msg: '编号不能为空'
    })
  }
  // 执行SQL命令
  try {
    var data = await query('delete from hs_expert where id=?',[id])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  // 判断是否删除成功
  if(data.affectedRows === 0) {
    res.send({
      code: 410,
      msg: '专家删除失败'
    })
  } else {
    res.send({
      code: 200,
      msg: '专家删除成功'
    })
  }
})
// 专家列表(get /)
router.get('/', async (req,res,next) => {
  // 获取get传递的参数
  const obj = req.query
  console.log(obj)
  // 判断是否存在
  // 如果姓名和医院都存在
  // 如果姓名存在
  // 如果医院存在
  let page = 10
  let str = ''
  if(obj.name && obj.hospital) {
    str = `where name like '%${obj.name}%' && hospital='${obj.hospital}'`
  } else if(obj.name) {
    str = `where name like '%${obj.name}%'`
  } else if(obj.hospital) {
    str = `where hospital='${obj.hospital}'`
  }
  // 页码为空，设置默认为第1页
  if(!obj.pno) {
    obj.pno = 1
  }
  // 计算开始查询的值
  let start = (obj.pno-1) * page
  // 执行SQL命令
  try {
    var data = await query(`select * from hs_expert ${str} order by id desc limit ${start},${page};select count(*) n from hs_expert ${str}`)
  } catch(err) {
    return next(err)
  }
  console.log(data)
  res.send({
    code: 200,
    msg: '专家列表',
    data: data[0],
    total: data[1][0].n,
    pno: obj.pno
  })
})

// 暴露
module.exports = router